importPackage(Packages.de.elo.ix.client);
//@include lib_Class.js
//@include lib_sol.common.FileUtils.js
//@include lib_sol.common.UserUtils.js
//@include lib_sol.common.ix.RfUtils.js
//@include lib_sol.common.ix.ServiceBase.js
var logger = sol.create("sol.Logger", { scope: "sol.dev.ix.services.DownloadIxPlugin" });
/**
* Transfers an IX plug-in
*
* # As IX function call
*
* In addition to the workflow node configuration the objId must be passed.
*
* sol.common.IxUtils.execute("sol.dev.ix.services.DownloadIxPlugin", {
* name: "bs.common"
* });
*
* @author MW, ELO Digital Office GmbH
* @version 1.0
*
* @eloix
*
* @requires sol.common.RepoUtils
*/
sol.define("sol.dev.ix.services.DownloadIxPlugin", {
extend: "sol.common.ix.ServiceBase",
/**
* @cfg {String} objId (required)
*/
initialize: function (config) {
var me = this;
me.$super("sol.common.ix.ServiceBase", "initialize", [config]);
},
/**
* Transfers an IX plug-in
* @returns {String} IX plug-in path
*/
process: function () {
var me = this,
osgiPluginDirectoriesString, pluginFilePath, fileData, kiloBytes;
osgiPluginDirectoriesString = sol.common.RepoUtils.getIxOption("osgiPluginDirectories");
me.osgiPluginDirectories = osgiPluginDirectoriesString.split(";");
if (!me.osgiPluginDirectories || (me.osgiPluginDirectories.length == 0)) {
throw "OSGI plug-in directory not set";
}
pluginFilePath = me.findPlugin(me.name);
fileData = sol.common.FileUtils.loadToFileData(pluginFilePath, "application/java-archive");
kiloBytes = Math.round(fileData.data.length / 1024);
logger.debug(["Transfer IX plug-in '{0}: {1} kB", me.name, kiloBytes]);
return fileData;
},
findPlugin: function (pluginName) {
var me = this,
i, osgiPluginDirectory, pluginFilePath, pluginFile;
for (i = 0; i < me.osgiPluginDirectories.length; i++) {
osgiPluginDirectory = me.osgiPluginDirectories[i];
pluginFilePath = osgiPluginDirectory + java.io.File.separator + pluginName;
pluginFile = new java.io.File(pluginFilePath);
if (pluginFile.exists()) {
return pluginFilePath;
}
}
throw "Can't find IX plug-in '" + pluginName + "'";
}
});
/**
* @member sol.dev.ix.services.DownloadIxPlugin
* @method RF_sol_dev_service_DownloadIxPlugin
* @static
* @inheritdoc sol.common.ix.ServiceBase#RF_ServiceBaseName
*/
function RF_sol_dev_service_DownloadIxPlugin(ec, args) {
var params, download, fileData;
logger.enter("RF_sol_dev_service_DownloadIxPlugin", args);
params = sol.common.ix.RfUtils.parseAndCheckParams(ec, arguments.callee.name, args, "name"),
sol.common.ix.RfUtils.checkMainAdminRights(ec.user, params);
download = sol.create("sol.dev.ix.services.DownloadIxPlugin", params);
fileData = download.process();
logger.exit("RF_sol_dev_service_DownloadIxPlugin");
return fileData;
}